﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BUGCOME.Model.Auth.dto
{
    /// <summary>
    /// 密码修改请求数据传输对象
    /// </summary>
    public class EidtPwdDto
    {
        /// <summary>
        /// 新密码
        /// </summary>
        /// <remarks>
        /// 密码强度要求：
        /// 1. 长度8-16位
        /// 2. 包含至少一个小写字母
        /// 3. 包含至少一个大写字母
        /// 4. 包含至少一个数字
        /// 5. 包含至少一个特殊符号(!@#$%^&*(),.?\":{}|&lt;&gt;)
        /// </remarks>
        [Required(ErrorMessage = "密码不能为空")]
        [RegularExpression(
            "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[!@#$%^&*(),.?\":{}|<>])[A-Za-z\\d!@#$%^&*(),.?\":{}|<>]{8,16}$",
            ErrorMessage = "用户密码由8-16位大小写字母、数字、符号组合"
        )]
        public string Password { get; set; }

        /// <summary>
        /// 确认新密码
        /// </summary>
        [Required(ErrorMessage = "确认密码不能为空")]
        public string ConfirmPassword { get; set; }

        /// <summary>
        /// 临时令牌
        /// </summary>
        /// <remarks>
        /// 用于验证用户身份的一次性令牌，通常由短信验证码接口生成
        /// 格式：全局唯一标识符(GUID)
        /// </remarks>
        public string Token { get; set; }

        /// <summary>
        /// 短信验证码
        /// </summary>
        /// <remarks>
        /// 格式：6位数字
        /// </remarks>
        public string Code { get; set; }
    }
}
